1. Field of the Invention
This invention relates generally to methods and apparatus for providing a bridge for a combination host bus adapter card to combine different interface technologies onto the host bus adapter card and more specifically to providing the ability to modify the controllers of the bridge and the interface technologies in-circuit.
2. Description of the Related Art
Original equipment manufacturers (OEM) place platform independent bridge chips onto a motherboard to allow for the ability to have different communications going through the peripheral component interconnect (PCI) bus. For example, a user can place a universal serial bus (USB) adapter card or 1394 adapter card into a PCI slot on the motherboard and the bridge chip on the motherboard enables the communication through each of the PCI slots. However, the number of PCI slots available for different technologies is limited, especially for legacy systems. As a user has a plethora of choices available for add on options, such as sound cards, web cams, video camcorders, etc., the user is limited by the number of slots available for peripheral devices.
In addition, the motherboard bridge chip can not be configured by the user easily and without severe consequences if done improperly. For example, if a user or engineer makes an improper change to the bridge chip configuration, the system will be irreparably damaged without recovery. Because of the severe consequences for an improper change, it is rare for skilled technicians to attempt to change the chip configuration, not to mention a general purpose computer user. The limited ability to reconfigure the bridge chip configuration correlates to limited ability to support multiple platforms.
An attempt has been made to provide limited programming ability on the host bus adapter (HBA) cards inserted into the PCI slots of a computer. However, the components of the HBA cards must be de-soldered and removed from the card, inserted into a special programming unit where its content is modified, and then the component is re-soldered back onto the HBA card. Because of the complicated process, only a highly trained professional with access to specialized equipment is capable of performing this task. Therefore, the typical user is left with no choice but to send the card to have it modified by the skilled professional.
Additionally, if the vendor of the card becomes aware of a modification which improves the performance of the HBA card, the vendor does not have the ability to perform the modifications while the cards are on the user's system. The vendor would have to have the HBA cards returned if they desire to incorporate the modification to HBA cards in the field. However, this is an economically unattractive alternative. Furthermore, if the HBA card is not functioning properly and is returned to the vendor, then the vendor must remove the faulty component from the card in order to make any modifications. This process is both costly and highly labor intensive.
More importantly, the amount and types of peripherals connected to a HBA card influence the configuration of the chip configuration on the card. For example, if a sole storage device is connected to the HBA card, the user may desire a configuration optimized for performance. On the other hand, where a scanner, printer and a storage device are connected through the HBA card, the user may desire a configuration optimized for compatibility and the handling of arbitration requests. Currently, a user is not allowed any flexibility to optimize the configuration of the card from the state it is shipped in from the vendor.
As a result, there is a need to solve the problems of the prior art to provide a HBA card which can be easily configured to provide the user and the vendor flexibility in configuring the components of a HBA card while the components are mounted on the card, wherein the modifications do not cause any conflicts and the multiple components of the card remain interoperable with each other.